/*
 * Copyright (C) 2017-2021
 * All rights reserved, Designed By
 * Copyright authorization contact 18814114118
 */
package com.shop.cereshop.commons.domain.wallet;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.annotation.JsonIgnore;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * cere_buyer_wallet 用户钱包实体类
 * @author
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "CereBuyerWallet", description = "用户钱包实体类")
public class CereBuyerWallet implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 钱包ID
     */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "钱包ID")
    private Long walletId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID")
    private Long buyerUserId;

    /**
     * 可用余额
     */
    @ApiModelProperty(value = "可用余额")
    private BigDecimal balance;

    /**
     * 冻结余额
     */
    @ApiModelProperty(value = "冻结余额")
    private BigDecimal frozenBalance;

    /**
     * 累计收入
     */
    @ApiModelProperty(value = "累计收入")
    private BigDecimal totalIncome;

    /**
     * 累计支出
     */
    @ApiModelProperty(value = "累计支出")
    private BigDecimal totalExpense;

    /**
     * 支付密码(加密)
     */
    @JsonIgnore
    @ApiModelProperty(value = "支付密码", hidden = true)
    private String payPassword;

    /**
     * 支付密码盐值
     */
    @ApiModelProperty(value = "支付密码盐值")
    private String payPasswordSalt;

    /**
     * 是否设置支付密码 0-否 1-是
     */
    @ApiModelProperty(value = "是否设置支付密码")
    private Integer isSetPayPassword;

    /**
     * 支付密码错误次数
     */
    @ApiModelProperty(value = "支付密码错误次数")
    private Integer payPasswordErrorCount;

    /**
     * 支付密码锁定时间
     */
    @ApiModelProperty(value = "支付密码锁定时间")
    private String payPasswordLockTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private String createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private String updateTime;
}
